/*
 *Copyright (c) 2024 Black Sesame Technologies
 *
 *Licensed under the Apache License, Version 2.0 (the "License");
 *you may not use this file except in compliance with the License.
 *You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 *Unless required by applicable law or agreed to in writing, software
 *distributed under the License is distributed on an "AS IS" BASIS,
 *WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *See the License for the specific language governing permissions and
 *limitations under the License.
*/
#ifndef _IPC_TRANS_COMMON_H
#define _IPC_TRANS_COMMON_H

#include "ipc_trans_config.h"

// this header file define common structure of ipc transferring layer
enum _ipc_msg_type_t {
	MSGBX_MSG_TYPE_INVALID = 0,
	MSGBX_MSG_TYPE_METHOD,
	MSGBX_MSG_TYPE_REPLY,
	MSGBX_MSG_TYPE_BROADCAST,
	MSGBX_MSG_TYPE_PROTOCOL,
	MSGBX_MSG_TYPE_USERDEFINED = 10,
	MSGBX_MSG_TYPE_HARDWARE = 15,
	MSGBX_MSG_TYPE_MAX = 16,
};
#define ipc_msg_type_t enum _ipc_msg_type_t

enum _ipc_ses_role_t {
	MSGBX_SES_ROLE_INVALID = 0,
	MSGBX_SES_ROLE_CLIENT = 1,
	MSGBX_SES_ROLE_SERVER = 2,
	MSGBX_SES_ROLE_FASTPATH = 3,
	MSGBX_SES_ROLE_MAX
};
#define ipc_ses_role_t enum _ipc_ses_role_t

#define MSGBX_END_COUNT_MAX 35U
#define CMD_MAX_COUNT 255U // ro
#define MSGBX_SID_MAX 16U
#endif
